{
    
        // useState它接收一个任意类型的数据，返回一个数组。
        // 数组的第一个元素的类型与入参一致； 
        //     数组的第二个元素是一个函数
        //     函数的入参类型与useState的入参一致, 返回值类型为void
        // react 
        // const [num, setNum] = useState(0)
        // const [str, setStr] = useState('ab')
    
        function useState<T>(value:T): [T, (newValue:T) => void] {
            type Fn =  (newValue: T) => void
            const setValue: Fn = (newValue) => {

            }

            return [value, setValue]
        }
    
        let [str, setStr] = useState<string>('123')
        // setStr(100)
    
        let [num, setNum] = useState<number>(123)
}